跳到主要内容

【pdf】分析 Java 中反应式编程库的性能和成本

比较结果

知道大家都更喜欢看结果,而不是比较过程

使用 scc 的反应式编程库的代码指标(不包括测试和文档)。

LibraryJava 代码行数(LOC)文件数量Cyclomatic Complexity(CC)Cyclomatic complexity density (CC/KLOC)[3]
RxJava 3.0.1310031390711750117.13
Reactor 3.4.87285844413358183.34
Mutiny 1.0.0211773002840134.10
圈复杂度

圈复杂度(Cyclomatic Complexity):是一个衡量程序控制流复杂度的指标,主要用于评估代码的复杂性和可维护性。 它由Thomas J. McCabe在1976年提出,用于衡量程序中的独立路径数量,即代码中可能的不同执行路径的数量。 值通常是越小越好

Cyclomatic Complexity Density 是圈复杂度(Cyclomatic Complexity, CC)的一个扩展,用于评估代码的复杂度相对于代码量的比率。 它有助于识别代码中复杂度相对于其规模的分布情况,从而更好地理解代码的质量和可维护性。

单一操作符性能比较

越多代表越好

Single Operation Pipelines
RxJavaMono
ReactorSingle, Maybe, Completable
MutinyUni
Individual OperatorsOperators
RxJavaSinglemap
ReactorMonomap
MutinyUnichain

单一直接变换

越多代表越好

多重独立操作符

越多代表越好

流的直接变换

越多代表越好

文本处理

越少代表越好

文本处理2

越少代表越好

网络请求

越少代表越好

网络请求2

越少代表越好